The present invention relates to networks, and more particularly to protocol stacks for networks.
The Bluetooth(trademark) networking protocol is well known in the art. FIG. 1 illustrates a standard Bluetooth protocol stack. The stack 100 includes a Host Controller Interface (HCI) layer 106, a Logical Link Control and Adaptation Protocol (L2CAP) layer 108, a Telephony Control Protocol Specification (TCS) layer 110, a Service Discovery Protocol (SDP) layer 112, and a RFCOMM protocol layer 114.
The HCI layer 106 provides a command interface which accepts communications over the physical bus (not shown). The L2CAP layer 108 supports higher level protocol multiplexing, packet segmentation and reassembly, and the conveying of quality of service information.
The TCS layer 110 provides call control and signaling of voice channels. The RFCOMM protocol layer 114 provides emulation of serial ports over the L2CAP layer 108.
The SDP layer 112 provides a means for applications to discover which services are provided by or available through a device. A Bluetooth device may act as an SDP client querying services, an SDP server providing services, or both. Each service registers with the SDP server, and information concerning each service is cataloged in service records. Through the SDP layer 112, a client may send a request to the SDP server to ask what services a remote device provides. The SDP server responds with service records of the services provided by the remote device. Part of each service record is a protocol descriptor list (PDL). The PDL comprises a list of layers of the protocol stack 100 through which to route a packet for the particular service.
However, because the stack layers 106-114 have well defined upper and lower edges, each of the layers 106-114 require intimate knowledge of the stack layer xe2x80x9cabovexe2x80x9d and xe2x80x9cbelowxe2x80x9d it in the protocol stack 100. For each path of a packet through the stack 100, the stack layers 106-114 must be specifically coded to talk to the stack layer above and below. Thus, when a new path is to be supported, one or more of the stack layers 106-114 must be modified. In addition, when a stack layer is to be added between two of the layers 106-114, one or more of the stack layers 106-114 must also be modified. For example, assume that a layer is to be added between the RFCOMM layer 114 and the L2CAP layer 108. The RFCOMM layer 114 must be modified to talk down stream to the new layer instead of the L2CAP layer 108, and the L2CAP layer 108 must be modified to talk upstream to the new layer instead of the RFCOMM layer 114. This is burdensome and leads to considerable complexity in the protocol stack 100.
Accordingly, there exists a need for an improved protocol stack for a network. The present invention addresses such a need.
The present invention provides an improved method and system for controlling packet flow through a protocol stack. The system comprises the layer manager which interfaces with each stack layer. The layer manager handles the packet flow to the stack layers. For a new packet path to be supported, only the Layer Manager needs to be modified, not the stack layers. This makes the implementation of the layers in the protocol stack easier. In an alternative embodiment, the layer manager comprises a plurality of protocol descriptor lists for supported services and uses these lists to route a packet to the appropriate stack layer. With this alternative embodiment, new stack layers may be inserted into the protocol stack without the need to modify the existing stack layers.